package com.laoye.big_event.Anno;

import com.laoye.big_event.Validation.StateValidation;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import java.lang.annotation.*;

@Documented //元注解
@Target({ElementType.FIELD}) //元注解，标识这个注解可以用在哪些地方
@Retention(RetentionPolicy.RUNTIME)//元注解，标识注解可以保留到运行时阶段
@Constraint(validatedBy = {StateValidation.class})//元注解，指定提供校验规则的类
public @interface State {
//    提供校验失败后的提示信息
    String message() default "state的属性只能是“草稿”或“已发布”";
//    指定分组
    Class<?>[] groups() default {};
//    负载，获取state注解的附加信息，必须提供但是一般不需要管
    Class<? extends Payload>[] payload() default {};
}
